/************************************************************************/
/*Copyright (c) James Zhao 2007,2008
/*This file is part of AdminOverlay.
/*AdminOverlay is free software: you can redistribute it and/or modify
/*it under the terms of the GNU General Public License as published by
/*the Free Software Foundation, either version 3 of the License, or
/*(at your option) any later version.
/*
/*AdminOverlay is distributed in the hope that it will be useful,
/*but WITHOUT ANY WARRANTY; without even the implied warranty of
/*MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
/*GNU General Public License for more details.
/*
/*You should have received a copy of the GNU General Public License
/*along with AdminOverlay.  If not, see <http://www.gnu.org/licenses/>.                                                                     */
/*************************************************************************/
#include "QtCore/QtCore"
#include "QtNetwork/QtNetwork"
#include "Player.h"

class XMLRPCServerSession;

class XMLRPCUtils
{
	friend class XMLRPCServerSession;
private:
	static void postCommand(QTcpSocket *tc, QString cmd);
	static QString getResult(QTcpSocket *tc);
	static QString getRPCXML(QString cmd);
	static QString getHttpHeader(QString xmlCommand);
	static QString hashString(QString str);
	static QString generateAuthenticationResponse(QString challenge, QString password);
	static bool authenticate(QTcpSocket *tc, QString password);
	static QString extractResponse(QString str);
	static QString removeEmptyBracketPairs(QString val);
	static QString removeDumpToDisk(QString val);
	static Player* buildPlayer(QString str);
};